var http=require('http');
var fs=require('fs');
var url=require('url');
var path=require('path');

var hostname='127.0.0.1';
var port=3000;

// 创建服务器
 var server=http.createServer(function(req,res){
 	// 跳过chrome的收藏夹图标的请求
 	if (req.url=='/favicon.ico')return;
   
   // 获取用户的路径
   var pathname=url.parse(req.url).pathname;

   // 没有指定访问的文件,额默认访问index
   if (pathname.indexOf('.')==-1) {
    pathname='/index.html';
   }
   
   // 读取访问的文件
   fs.readFile('./static/'+pathname,function(err,data){
        if (err) {
            fs.readFile('./static/404.html',function(err,data){
                res.end(data);
            });
            return;
        }

    // 文件的拓展名不同,需要设置不同的头信息
    // 根据实际访问到的文件后缀,得到对应的mime类型
    // .html => text/html
    // .png => image/png
    
     var extname = path.extname(pathname);
    //  // console.log(extname);
    
    // getMime(extname,function(mime){

    //   res.writeHead(200,{'content-type':mime});
    //   res.end(data);

    // });
    
    // 使用nodejs 的同步接口实现读取mime文件
     var mimedata= fs.readFileSync('./mime.json');
     var mime=JSON.parse(mimedata);
     res.writeHead(200,{'content-type':mime[extname]});
     res.end(data);




   });
 	

 });

 // 运行服务器
  server.listen(port,hostname);



//   function getMime(extname,callback){
//     // 读取mime.json文件,用于后缀和mime类型的匹配
//     fs.readFile('./mime.json',function(err,data){
//         var mimedata=JSON.parse(data)[extname];
//         // console.log(mimedata);
//         // return mimedata;
//         callback(mimedata);

//     });
// }


// 传入后缀,返回对应的mime类型
// function getMime(extname){
//     // 读取mime.json文件,用于后缀和mime类型的匹配
//     fs.readFile('./mime.json',function(err,data){
//         var mimedata=JSON.parse(data)[extname];
//         // console.log(mimedata);
//         return mimedata;

//     });
// }





// 传入后缀,返回对应的mime类型
 // function getMime(extname){
 //    switch(extname){
 //        case '.html': return 'text/html';break;
 //        case '.jpg': return 'image/jpg';break;
 //        case '.png': return 'image/png';break;
 //        case '.css': return 'text/css';break;
 //        case '.js': return 'application/javascript';break;
 //    }
 // }
